package com.ruoyi.business.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.business.domain.Exam;
import com.ruoyi.business.domain.UserExam;
import com.ruoyi.business.domain.bo.ExamBo;
import com.ruoyi.business.domain.bo.UserExamBo;
import com.ruoyi.business.domain.bo.UserExamQuestionBo;
import com.ruoyi.business.domain.vo.ExamVo;
import com.ruoyi.common.core.domain.model.InternalObjectPage;
import com.ruoyi.common.core.page.TableDataInfo;

import java.util.List;

/**
 * @author 最爱喝兽奶
 * @create 2022/8/10
 **/
public interface IExamService extends IService<Exam> {

    /**
     * 插入考试信息
     * @param bo 考试信息
     */
    void insertExam(ExamBo bo);

    /**
     * 分页查询考试信息
     * @param bo 传入考试的bo
     * @return 返回考试的分页信息
     */
    TableDataInfo<ExamVo> selectExamByPage(ExamBo bo);

    /**
     * 根据传入的用户id来查询出他的考试信息
     * @param bo
     * @return
     */
    TableDataInfo<ExamVo> queryStuExamByPage(UserExamBo bo);

    /**
     * 提交考试结果
     * @param bos 学生的考试作答
     */
    void submitExam(List<UserExamQuestionBo> bos);

    /**
     * 引用查询
     * @param refColumn
     * @param pageSize
     * @param currentPage
     * @param filterContent
     * @param filterId
     * @return
     */
    InternalObjectPage selectRefTableByName(String refColumn, Integer pageSize, Integer currentPage, String filterContent, String filterId);

    ExamVo queryExamVo(String id);
}
